import CryptoJS from "crypto-js"; // 引入加密库

// 生成 DataSign
function generateDataSign(requestData, apiKey) {
  const rawData = requestData + apiKey; // 拼接 RequestData 和 APIKey
  const md5Hash = CryptoJS.MD5(rawData).toString(); // 生成 MD5
  const base64Data = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(md5Hash)); // 转为 Base64
  return encodeURIComponent(base64Data); // URL 编码
}

// 调用物流查询接口
export function wuliu(data, token, apiKey) {
  return new Promise((resolve, reject) => {
    try {
      // 将 data 转为 JSON 字符串
      const requestData = JSON.stringify(data);

      // 生成 DataSign
      const dataSign = generateDataSign(requestData, apiKey);

      // 构造最终请求负载
      const payload = {
        RequestType: "8001", // 请求类型
        EBusinessID: "1868288", // 替换为实际 EBusinessID
        RequestData: requestData,
        DataSign: dataSign,
        DataType: "2", // 数据类型，2 表示 JSON
      };

      // 发起请求
      uni.request({
        url: `/Ebusiness/EbusinessOrderHandle.aspx`, // token 添加到 URL
        method: "POST",
        header: {
          "Content-Type": "application/x-www-form-urlencoded",
        },
        data: payload, // 发送的请求体
        success: (res) => {
          if (res.statusCode === 200) {
            resolve(res.data);
          } else {
            reject(new Error(`HTTP状态码错误: ${res.statusCode}`));
          }
        },
        fail: (err) => {
          reject(err);
        },
      });
    } catch (error) {
      reject(error);
    }
  });
}
